308bdd00b15a9aa6426348645e5e14852cbf1dbc,src/main/java/com/csforge/sstable/JsonTransformer.java,JsonTransformer,serializePartitionKey,#DecoratedKey#,74

Before Change


        AbstractType<?> keyValidator = metadata.getKeyValidator();
        objectIndenter.setCompact(true);
        try {
            if (this.shortKeys) {
                arrayIndenter.setCompact(true);
            }
            json.writeStartArray();
            if (keyValidator instanceof CompositeType) {
                // if a composite type, the partition has multiple keys.
                CompositeType compositeType = (CompositeType) keyValidator;
                assert shortKeys || compositeType.getComponents().size() == metadata.partitionKeyColumns().size();
                ByteBuffer keyBytes = key.getKey().duplicate();
                // Skip static data if it exists.
                if (keyBytes.remaining() >= 2) {
                    int header = ByteBufferUtil.getShortLength(keyBytes, keyBytes.position());
                    if ((header & 0xFFFF) == 0xFFFF) {
                        ByteBufferUtil.readShortLength(keyBytes);
                    }
                }

                int i = 0;
                while (keyBytes.remaining() > 0 && i < compositeType.getComponents().size()) {
                    AbstractType<?> colType = compositeType.getComponents().get(i);

                    ByteBuffer value = ByteBufferUtil.readBytesWithShortLength(keyBytes);
                    String colValue = colType.getString(value);

                    if (this.shortKeys) {
                        json.writeString(colValue);
                    } else {
                        ColumnDefinition column = metadata.partitionKeyColumns().get(i);
                        json.writeStartObject();
                        json.writeFieldName("name");
                        json.writeString(column.name.toString());

                        json.writeFieldName("value");
                        json.writeString(colValue);
                        json.writeEndObject();
                    }

                    byte b = keyBytes.get();
                    if (b != 0) {
                        break;
                    }
                    ++i;
                }
            } else {
                // if not a composite type, assume a single column partition key.
                assert metadata.partitionKeyColumns().size() == 1;
                ColumnDefinition column = metadata.partitionKeyColumns().get(0);
                if(shortKeys) {
                    json.writeString(keyValidator.getString(key.getKey()));
                } else {
                    json.writeStartObject();
                    json.writeFieldName("name");
                    json.writeString(column.name.toString());
                    json.writeFieldName("value");
                    json.writeString(keyValidator.getString(key.getKey()));
                    json.writeEndObject();

After Change


        AbstractType<?> keyValidator = metadata.getKeyValidator();
        objectIndenter.setCompact(true);
        try {
            arrayIndenter.setCompact(true);
            json.writeStartArray();
            if (keyValidator instanceof CompositeType) {
                // if a composite type, the partition has multiple keys.